package com.heima.model.article.pojos;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.StringSerializer;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;

import java.util.Date;

/**
 * 展示给 APP 端的文章基本信息
 */
@TableName("ap_article")
@Data
public class ApArticle {
    /**
     * 唯一标识，由雪花算法生成
     */
    @TableId(value = "id", type = IdType.ID_WORKER)
    @JsonSerialize(using = ToStringSerializer.class)    //使用 JSON 中的序列化和反序列化加密处理
    private Long id;
    /**
     * 文章标题
     */
    @TableField("title")
    private String title;
    /**
     * 文章作者 id
     */
    @TableId("author_id")
    private Integer authorId;
    /**
     * 文章作者昵称
     */
    @TableId("author_name")
    private String authorName;
    /**
     * 文章所属频道 id
     */
    @TableId("channel_id")
    private Integer channelId;
    /**
     * 文章所属频道名称
     */
    @TableId("channel_name")
    private String channelName;
    /**
     * 文章布局：0 - 无图
     *         1 - 单图
     *         2 - 多图
     */
    @TableId("layout")
    private Short layout;
    /**
     * 文章标记：0 - 普通文章
     *         1 - 热点文章
     *         2 - 置顶文章
     *         3 - 精品文章
     *         4 - 大 V 文章
     */
    @TableId("flag")
    private Short flag;
    /**
     * 文章图片：多个图片地址之间用逗号隔开
     */
    @TableId("images")
    private String images;
    /**
     * 文章标签：多个标签之间用逗号分割，最多三个标签
     */
    @TableId("labels")
    private String labels;
    /**
     * 文章点赞数
     */
    @TableId("likes")
    private Integer likes;
    /**
     * 文章收藏数
     */
    @TableId("collection")
    private Integer collection;
    /**
     * 文章评论数
     */
    @TableId("comment")
    private Integer comment;
    /**
     * 文章查看数
     */
    @TableId("views")
    private Integer views;
    /**
     * 省市
     */
    @TableId("province_id")
    private Integer provinceId;
    /**
     * 市区
     */
    @TableId("city_id")
    private Integer cityId;
    /**
     * 区县
     */
    @TableId("county_id")
    private Integer countyId;
    /**
     * 创建时间
     */
    @TableId("created_time")
    private Date createdTime;
    /**
     * 发布时间
     */
    @TableId("publish_time")
    private Date publishTime;
    /**
     * 同步状态
     */
    @TableId("sync_status")
    private Short syncStatus;

    /**
     * 文章来源
     */
    @TableField("origin")
    private Short origin;

    /**
     * 文章静态化页面访问路径
     */
    @TableField("static_url")
    private String staticUrl;
}
